package com.zjdiepu.www.proxy.biz.own;

import java.util.List;

import com.diepu.www.client.proxy.hzicbc.request.CreditResultRequest;
import com.zjdiepu.www.proxy.model.dto.own.SysUserProxy;
import com.zjdiepu.www.proxy.model.dto.transfer.TransferYwOrdernoBank;
import com.zjdiepu.www.proxy.model.dto.transfer.TransferZxCreditQuery;
import com.zjdiepu.www.proxy.model.dto.transfer.TransferZxQueryCreditApply;
import com.zjdiepu.www.proxy.model.dto.transfer.TransferZxQueryCreditApplySub;

public interface HzGhBiz {

	/**
	 * 内勤或者业务员提交查征信后，主程序同时将相应信息发送到该接口。
	 * 入参：征信申请主表对象、征信申请子表对象（可能有多个）、征信查询结果对象（工行版）（可能有多个）
	 * 出参：处理结果（成功：0  ； 异常  01xxxx）
	 * 1、将征信主表对象和子表对象写入 transfer_zx_query_credit_apply 和 transfer_zx_query_credit_apply_sub （type_data =3）
	 * 2、将征信查询结果对象（工行版）写入征信查询结果对象（工行版）（type_data =3；transfer_handle_status = 10）
	 * 3、写一个时间为5分钟（可配）之后的下载附件定时任务；  张郑健
	 * 4、写一个时间为10分钟（可配）之后的向工行申请查征信定时任务  张郑健
	 * @param sysUserProxy
	 * @param transferZxQueryCreditApply
	 * @param List<TransferZxQueryCreditApplySub>
	 * @return
	 */
	int diepuZxCopyApply(SysUserProxy sysUserProxy,TransferZxQueryCreditApply transferZxQueryCreditApply,List<TransferZxQueryCreditApplySub> transferZxQueryCreditApplySub,List<TransferZxCreditQuery> transferCreditQuerys,TransferYwOrdernoBank transferYwOrdernoBank);
	
	/**
	 * 新增接口：接口查征信结果反馈
	 * 工行向中转服务器回调征信结果后，通过该接口写入征信结果
	 * 如果工行返回的result（客户信用等级） 为 001或者002 或者 003 
	 * 和原来的征信结果反馈一样处理（zx_征信查询结果表、zx_征信查询申请子表、中转_zx_征信查询申请、中转_zx_征信查询申请子表都要修改）
	 * 将征信结果写入zx_credit_query_hzicbc（type_data=3）
	 * @param sysUserProxy
	 * @param result
	 * @param orderno
	 */
	int diepuZxFeedbackHandle(SysUserProxy sysUserProxy,String result,String orderno,CreditResultRequest creditResultRequest);
	
	
	/**
	 * 征信结果反馈成功之后
	 * 更新中间服务器的业务编号
	 * @param sysUserProxy
	 * @param transferZxQueryCreditApply
	 * @return
	 */
	int diepuZxQuerySuccessBusiIdUp(SysUserProxy sysUserProxy,TransferZxQueryCreditApply transferZxQueryCreditApply);
	
	/**
	 * 附件列表同步
	 * @param sysUserProxy
	 * @return
	 */
	boolean diepuObtainFileList(SysUserProxy sysUserProxy,String orderno)throws Exception;
}
